package top.yangbuyi.service.impl;

import top.yangbuyi.domain.Role;
import com.baomidou.mybatisplus.extension.service.IService;
import top.yangbuyi.dto.RoleDto;
import top.yangbuyi.vo.DataGridView;

import java.util.List;

/**
* ClassName: Loginfo
* Description: 杨不易网站 :www.yangbuyi.top
* date: 2020/9/7
* @author TeouBle
* @author yangbuyi
* @since JDK 1.8
**/

public interface RoleService {

        /**
         * 分页查询角色
         * @param roleDto
         * @return
         */
        DataGridView listRolePage(RoleDto roleDto);

        /**
         * 查询所有可用角色
         * @return
         */
        List<Role> listAllRoles();

        /**
         * 根据ID查询角色
         * @param roleId
         * @return
         */
        Role getOne(Long roleId);

        /**
         * 添加一个角色
         * @param roleDto
         * @return
         */
        int addRole(RoleDto roleDto);

        /**
         * 修改角色
         * @param roleDto
         * @return
         */
        int updateRole(RoleDto roleDto);

        /**
         * 根据角色ID删除角色
         * @param roleIds
         * @return
         */
        int deleteRoleByIds(Long[] roleIds);

        /**
        * @功能描述:保存角色和菜单关系
        * @Description:
        * @Author: TeouBle
        * @Date: 2020/9/7 21:29
        */
        void saveRoleMenu(Long roleId, Long[] menuIds);

        /**
         * 根据用户ID查询用户拥有的角色IDS
         * @param userId
         * @return
         */
        List<Long> getRoleIdsByUserId(Long userId);

        /**
         * 保存角色和用户的关系
         * @param userId
         * @param roleIds
         */
        void saveRoleUser(Long userId, Long[] roleIds);

}
